CVE-2024-13454 - Easy-RSA with OpenSSL 3 may create a CA private key using 3DES
Using Easy-RSA after version 3.0.5 and before 3.2.0 on systems using
OpenSSL 3 will incorrectly encrypt password protected CA private keys
using cipher:des-ede3-cbc when using the easyrsa build-ca command.
The algorithm expected to be used is cipher:aes-256-cbc.
How to fix the private CA key:
- Use the
easyrsa set-pass cacommand. This will re-encrypt the private CA key using the proper cipher algorithm. This will work on all Easy-RSA versions.
Additional recommendation:
- Upgrade to Easy-RSA version 3.2.0 or newer.
Command set-pass was introduced in Easy-RSA-3.1.2 (https://github.com/OpenVPN/easy-rsa/pull/756).
Using OpenSSL v3 with each version of Easy-RSA command build-ca, then using Easy-RSA command set-pass ca to re-encrypt the CA key with a new password:
Note: Easy-RSA support for OpenSSL v3 was first introduced in Easy-RSA v3.1.0 (https://github.com/OpenVPN/easy-rsa/pull/492).
| EasyRSA-3.0.5: | build-ca: des-ede3-cbc - | set-rsa-pass: aes-256-cbc |
| EasyRSA-3.0.6: | build-ca: des-ede3-cbc - | set-rsa-pass: aes-256-cbc |
| EasyRSA-3.0.7: | build-ca: des-ede3-cbc - | set-rsa-pass: aes-256-cbc |
| EasyRSA-3.0.8: | build-ca: des-ede3-cbc - | set-rsa-pass: aes-256-cbc |
| EasyRSA-3.0.9: | build-ca: des-ede3-cbc - | set-rsa-pass: aes-256-cbc |
| EasyRSA-3.1.0: | build-ca: des-ede3-cbc - | set-rsa-pass: aes-256-cbc |
| EasyRSA-3.1.1: | build-ca: des-ede3-cbc - | set-rsa-pass: aes-256-cbc |
| EasyRSA-3.1.2: | build-ca: des-ede3-cbc - | set-pass: aes-256-cbc |
| EasyRSA-3.1.3: | build-ca: des-ede3-cbc - | set-pass: aes-256-cbc |
| EasyRSA-3.1.4: | build-ca: des-ede3-cbc - | set-pass: aes-256-cbc |
| EasyRSA-3.1.5: | build-ca: des-ede3-cbc - | set-pass: aes-256-cbc |
| EasyRSA-3.1.6: | build-ca: des-ede3-cbc - | set-pass: aes-256-cbc |
| EasyRSA-3.1.7: | build-ca: des-ede3-cbc - | set-pass: aes-256-cbc |
| EasyRSA-3.2.0: | build-ca: aes-256-cbc - | set-pass: aes-256-cbc |
| EasyRSA-3.2.1: | build-ca: aes-256-cbc - | set-pass: aes-256-cbc |
OpenSSL version 1.1.0l and 1.1.1w has been tested and no issues were found. OpenSSL 1.x is not expected to have this issue.
However the set-rsa-pass and set-ec-pass were found to change the CA key format from PKCS12 to PKC8 for Easy-RSA versions 3.0.9 through 3.1.7. In all cases, the cipher used was aes-256-cbc.
